﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>The basics</title>
<meta name="GENERATOR" content="WinCHM">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
html,body { 
	/* Default Font */
	font-family: Courier New;
	font-size: 11pt;
}
</style>

</head>


<body>
<P><STRONG>The basics</STRONG><BR>This page covers the 
basic principles of plugin development for x64dbg.</P>
<P><STRONG>Exports</STRONG><BR>A plugin has at least one 
export. This export must be called <U>pluginit</U>. See the PLUG_INITSTRUCT and 
the plugin headers for 
more information. The other valid exports are:</P>
<P><U>plugstop</U>: called when the plugin is about to be 
unloaded. Remove all registered commands and 
callbacks here. Also clean up plugin data.</P>
<P><U>plugsetup</U>: Called when the plugin initialization 
was successful, here you 
can register menus and other GUI-related things.</P>
<P><U>CB*</U>: Instead of calling _plugin_registercallback, 
you can create a CDECL export which has the name of the callback. For example 
when you create an export called "CBMENUENTRY", this will be registered as your 
callback for the event CB_MENUENTRY. Notice that you should <STRONG>not</STRONG>      
    
use an underscore in the export name.</P>
<P><U>CBALLEVENTS</U>: An export with the name "CBALLEVENTS" 
will get every event registered to it. This is done      
    
prior to registering optional other export names.</P></BODY></HTML>